Auto-negotiation defined in the IEEE Std. 802.3u 100Base-T supplement Clause 28 makes it possible for data communication devices to exchange information about their abilities over a link segment. This, in turn, allows the devices to perform automatic configuration to achieve the best possible mode of operation over a link. At a minimum, auto-negotiation can provide automatic speed matching for multi-speed communication devices at each end of a link. Multi-peed Ethernet interfaces can then take advantage of the highest speed offered by a multi-speed hub port.
The auto-negotiation protocol includes automatic sensing for other capabilities as well. For example, a hub that is capable of supporting full-duplex operation on some or all of its ports can use the auto-negotiation protocol to inform communication devices that they may operate in a fill-duplex mode. Interfaces connected to the hub that also support full-duplex operation can then configure themselves to use the full-duplex node in interaction with the hub.
Thus, auto-negotiation allows a data communication device to select the best transmission speed and transmission mode based on capabilities of the device at opposite side of the link. For example, device A supports transmission at 10 Mbps and 100 Mbps in half-duplex and full-duplex modes, and device B connected to device A supports 100 Mbps full-duplex mode. Since both ends of the link support 100 Mbps full-duplex mode, device A selects this mode. However, if device C connected to device A supports only 10 Mbps half-duplex mode, device A automatically detects these capabilities of device C, and selects 10 Mbps half-duplex mode.
A typical auto-negotiation block has transmit, receive and arbitration state machines defined by the transmit, receive and arbitration state diagrams respectively provided in FIGS. 28-14, 28-15 and 28-16 of the IEEE Std. 802.3 !00BASE-T supplement.
Auto-negotiation takes place using 100 ns link pulses. In 10BASE-T devices, such link pulses were employed for performing link integrity tests. A sequence of link pulses referred to as Normal Link Pulse (NLP) sequence is used for verifying link integrity, as defined in the 10BASE-T specification. As shown in FIG. 1, the NLP sequence consists of 10BASE-T Link Integrity Test Pulses transmitted every 16.+-.8 ms. Auto-negotiation information is conveyed in Fast Link Pulse (FLP) signals, which are a modified version of the NLP signals. As shown in FIG. 2, the FLP signals are transmitted in bursts every 16.+-.8 ms.
If a link partner is a 100 Mbps device with auto-negotiation ability, the stations on the both ends of the link exchange with the FLP signals. Upon receiving 3 consecutive and consistent FLP bursts, the capabilities of the link partner are recognized, and both stations are configured to transmit at 100 Mbps in a full-duplex or half-duplex mode. If a link partner is a 10 Mbps device, it responds to the FLP signals by sending back the NLP signals, instead of the FLP signals.
Normally, received FLP and NLP signals have a positive polarity. However, due to various errors, link pulses may become negative. In this case, a conventional auto-negotiation will not recognize an FLP or NLP signal. As a result, a communication error may occur. To ensure reliable auto-negotiation, it would be desirable to provide an auto-negotiation system capable of performing auto-negotiation using reverse polarity link pulses.